Method and Apparatus for the Execution of a Program

ABSTRACT

An apparatus and a method is provided for the execution of a program by a program-controlled device, in which the program-controlled device receives instructions and automatically executes the program if it receives an access instruction for accessing a protected memory area. The invention further relates to a programmable transponder containing at least one such program-controlled device.

This nonprovisional application claims priority under 35 U.S.C. §119(a) on German Patent Application No. DE 102004013176.7-53, which was filed in Germany on Mar. 17, 2004, and which is herein incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method and an apparatus for the execution of a program by a program-controlled device.

2. Description of the Background Art

Program-controlled devices of this type may be designed for example as a microprocessor, microcontroller, signal processor or the like. The construction of such program-controlled devices has been known in many cases in innumerable embodiments for many years, and so it will not be discussed in any greater detail. A processor will generally be assumed hereinafter as an example of a program-controlled device.

Every processor has its own instruction set, the scope of which is predefined by an available bit width for instructions of the processor. If the bit width for instructions is two bits, for example, then a maximum of four different instructions are available to the corresponding processor.

Therefore, extending the instruction set of a processor generally also requires increasing the bit width provided for instructions, the so-called instruction bit width, unless the available instruction space of the processor is not yet fully exhausted. This latter may occur for example in the case of complex microprocessors having a large instruction bit width.

However, if the instruction space is fully exhausted, then it is not possible to implement the functionality of a processor only by extending the instruction scope without a circuitry intervention in the integrated circuit of the processor. Such circuitry changes exhibit inherent serious disadvantages, however, e.g., they are usually also accompanied by an enlargement of the chip area of the processor, a result of which being that the integrated circuit representing the processor is significantly more expensive to produce. This is at contrary with endeavoring to produce integrated circuits and corresponding processors smaller and smaller and thus ever more cost-effectively.

Moreover, interventions in the circuitry of a processor also always entail the risk of errors creeping in, which risk reduces the design security and which errors usually have to be eliminated in a very complicated manner. This is the case particularly with optimized processors, which have not been exclusively developed by automatic development tools for the chip design, but rather have been optimized as if it were “manually”.

In order to avoid the limitations outlined above, and the associated disadvantages, the functionality of an integrated circuit, which has hitherto been provided by hardware elements such as processors or corresponding electronic circuit, is increasingly being moved into the program or the software of the corresponding hardware or of the processor.

In the case of smaller circuit arrangements or devices such as programmable transponders, for example, this constitutes a significant problem, because their chip areas and thus also the memory space available for software are very limited. Such programmable transponders are also referred to as a “tag” since they are often used as if they were markers or labels for identifying products. A programmable transponder or tag typically includes a microchip and a transmitting/receiving antenna through which data can be interchanged, for example, with base stations bidirectionally by radio.

However, the radio transmission link used for data transmission between the base station and the transponder is of a very narrowband nature. Moreover, the transmission times are very limited temporally.

In order to be able to comply with these boundary conditions, the processors used for such programmable transponders have instruction sets having a very small bit width of merely two bits, for example. The four different instructions available as a result of this have regularly already been allocated, so that an intervention in the integrated circuit of the transponder is necessary for the implementation of at least one additional instruction. Without such a circuitry change, it is not possible to implement at least one additional instruction in the case of currently available transponders having a small bit width. This is a state of affairs which, understandably, should be avoided.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide a method and an apparatus for the execution of a program by a processor in which it is not necessary to extend an instruction set that is already present for the purpose of introducing new instructions.

In an embodiment of the present invention, new or additional instructions are created for an execution of a program from existing instructions, which access protected memory areas, which are actually forbidden during normal operation of the processor. In other words, according to the invention, it is thus possible to use predefined access instructions to protected memory areas for the automatic execution of a program by a processor, thereby enabling the implementation of a further instruction.

The invention proves to be particularly advantageous in those applications in which there is an increased need for security. In applications of this type, a type of authentication sequence or login procedure is generally carried out prior to the actual data transmission. These methods are intended to ensure that all subscribers participating in a communication are actually authorized to communicate among one another. Special instructions such as “start authentication” have conventionally been provided for such authentication sequences or login procedures, which instructions have been sent from a base station to a transponder, for example. A corresponding circuit for the authentication or login process is then activated in the transponder.

In the case of the base station, the functionality corresponding to the abovementioned circuit of the transponder has been realized in software since sufficient memory space and processor capacity are available there. Through an embodiment of the present invention, it is now possible, in a very elegant but nevertheless very effective manner, to extend existing transponders which actually have a very limited instruction space with regard to their instruction bit width, whereby the instruction space already being fully utilized, in order to make available the additional functionality of an authentication and/or a login procedure, without substantial circuitry changes. This is effected according to an embodiment of the invention, for example, by realizing substantial parts of the new instruction on the transponder in the form of software. Since such program parts or instructions which are present anyway in the software of the transponder are accessed here, the memory space requirement for this additional functionality is very small. An enlargement of the space requirement of the corresponding integrated circuit is therefore negligibly small or ideally even nonexistent.

In concrete terms, an embodiment of the invention relates to a method for the execution of a program by a processor, in which the processor receives instructions and automatically executes the program if it receives an instruction for accessing a protected memory area. The processor thus interprets such an access instruction as a type of start command for the program. This method is preferably used for extending instructions in programmable transponders or tags.

The program may, for example, can execute an authentication sequence between a first communication party and a second communication party. In particular, the first communication party can be designed, for example, as a base station and the second communication party can be designed as a transponder having the processor and also the protected memory area.

The program may also execute a login procedure of a first communication party at a second communication party. For example, the login procedure may be executed if a base station wishes to register or log on to a transponder.

Preferably, the protected memory area has at least one secret key. The instruction for accessing the protected memory area can include an address of the at least one secret key. In such a case, the processor merely has to decode the combination of access instructions and the special memory address of the at least one secret key for the automatic execution of the program mentioned. Such decoding can be implemented in a simple manner in software that is executed by the processor. Thus, before the processor outputs an error message on account of the access to the protected memory area, the corresponding access instruction is intercepted and decoded in accordance with the invention and interpreted as a new instruction.

The protected memory area may also include a predefined address range of a memory. In this case, the instruction for accessing the protected memory area includes at least one address of the predefined address range.

The instruction for accessing the protected memory area can be designed as a read command and/or as a write command.

In a further embodiment, an apparatus is provided for the execution of a program by a program-controlled device, which is designed for receiving instructions and has an instruction processor, which is designed to automatically execute the program if the processor receives an instruction for accessing a protected memory area. The instruction processor may either be realized by simple circuitry measures or else be implemented in software. The program-controlled device may be designed for example as a microprocessor, as a microcontroller, as a signal processor, etc. However, a hardwired implementation of the program-controlled device would also be conceivable, for example, by an FPGA circuit or a PLD circuit.

The program is preferably designed in such a way so as to execute an authentication sequence between a first communication party and a second communication party, for example, between a base station and a transponder.

The program may also be designed in such a way as to execute a login procedure of a first communication party to a second communication party, for example, a base station to a transponder.

Preferably, the protected memory area has at least one secret key. The instruction for accessing the protected memory area can include the address of the at least one secret key.

In a further embodiment, the protected memory area may also include a predefined address range of a memory. In this case, the instruction for accessing the protected memory area can have at least one address of the predefined address range.

Also, the instruction for accessing the protected memory area can be, preferably, designed as a read command and/or as a write command.

In addition, an embodiment of the invention relates to a programmable transponder containing a program-controlled device as described above.

Further scope of applicability of the present invention will become apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from the detailed description given hereinbelow and the accompanying drawings which are given by way of illustration only, and thus, are not limitive of the present invention, and wherein:

FIG. 1 shows a memory map of a programmable transponder (tag) comprising a system memory with secret keys, according to an embodiment of the invention;

FIG. 2 shows a progression of an authentication sequence between a base station and a transponder, in the course of which the base station authenticates itself at the transponder by execution of a program by a processor arranged within the transponder;

FIG. 3 shows a memory map of a transponder containing a system memory with a read/write password for a login procedure; and

FIG. 4 shows an example of a login sequence, in the course of which a base station registers itself at a transponder by starting a program for the execution based on a login sequence on the transponder.

DETAILED DESCRIPTION

In the figures of the drawing, unless specified otherwise, identical or functionally identical elements, features and signals have been provided with the same reference symbols.

FIG. 1 shows a memory map of a programmable transponder (tag) that includes a system memory with secret keys. In this case, the reference symbol 10 represents the memory map of the programmable transponder—hereinafter referred to as transponder. The memory map 10 includes data blocks, which are identified by 0 to n. Each of the data blocks can have an identical memory size, for example, of 32 bytes. Moreover, a system memory area 12 is provided within the memory map 10, and permits only protected access via an operating system executed by a processor of the transponder.

The system memory area 12 includes configuration settings, which are a unique identification of the transponder (“Tag ID”), memory locations for one or more secret keys, and memory locations for tracing specific processes. The memory addresses 0 to n of the memory map 10 and u to v of the system memory area 12 are specified in each case in the left-hand fields in FIG. 1. In this case, the system memory area 12 comprises a range from the address u to the address v with the boundary conditions u≧0 and v≦n, as a result of which it lies within the memory map 10.

FIG. 2 shows an example of a progression of an authentication sequence between a base station 14 and a transponder 16. FIG. 2 in this case shows the progression of an authentication of the base station 14, also referred to as a read/write device, at a transponder or tag 16. In this case, it should be taken into account that the instruction set of the processor of the transponder 16 does not necessarily have a dedicated instruction for starting the authentication process. Rather, the authentication process can be initiated in the transponder 16, more precisely by the processor of the transponder 16, by execution of an inherently “forbidden” instruction. In this case, a “forbidden” instruction is to be understood, for example, as an instruction that executes an unallowed access to a protected memory area, that is to say to one or more memory addresses of the system memory area 12 illustrated in FIG. 1.

In FIG. 2, the “forbidden” instruction can be a read command 18 for one or more memory addresses of the system memory area 12, which in each case can include a secret key. The processor of the transponder 16 identifies such an instruction as a forbidden access and thereupon starts a routine or procedure 20 which carries out the authentication process. Such a routine or procedure 20 can be stored in the memory of the transponder 16.

After the authentication sequence 20 has been performed, a processor of the transponder 16 ascertains whether the authentication was successful 22 or was not successful 24. If the authentication was successful, a bidirectional communication 26 with reciprocal read/write accesses can be effected between the base station 14 and the transponder 16. By contrast, if the authentication was not successful, then the corresponding communication is automatically terminated 28 by the transponder 16 and/or by the base station 14. It may then be provided that immediately afterward or, if appropriate, after a predefined time period has elapsed, a renewed authentication process is started by the base station 14. In addition or alternatively, it may also be provided that the communication between the base station 14 and the transponder 16 is first completely interrupted once and/or also remains permanently interrupted.

FIG. 3 shows, for example, a memory map of a transponder having a system memory with a read/write password for a login procedure. In this case, FIG. 3 shows a similar memory map of a memory of a transponder 16 as that in FIG. 1, although with the difference that, instead of the secret keys, a read password and also a write password are stored in the system memory area 32. The read and write passwords are intended to enable specific memory areas of the memory of the transponder 16 to be read from and written to. The read and write passwords furthermore enable a base station 14 to register at the transponder 16 by a login sequence which, is explained below with reference to FIG. 4.

FIG. 4 shows, for example, a login sequence in the course of which a base station 14 registers itself at a transponder 16 by starting a program for the execution according to the invention of the login sequence on the transponder. In FIG. 4, a base station 14 transmits a read registration command 34 to a programmable transponder 16, through which the transponder 16 is informed by the base station 14 that the base station 14 would like to read data from a protected memory area or system memory area 32 of the transponder 16. The read registration command 34 may be, for example, a read command to a memory cell of the system memory area 32, which the processor of the transponder 16 identifies as an unallowed access.

The processor of the transponder 16 then starts a routine or a procedure 36, which may be stored in the conventional memory or else in the protected memory or system memory area 32 of the transponder memory, and which, upon registration of the base station 14 at the transponder 16, enables the reading and writing of memory addresses of the system memory area 32, that is to say, of the protected memory area of the transponder memory. In the context of this login procedure, the transponder 16 verifies login data which it receives after the read registration command 34 from the base station 14. It compares the received login data with corresponding data (Read Password, Write Password) from the system memory area 32 and identifies the registration request by the base station 14 as successful 38 provided that the data correspond; otherwise, it rejects the registration process as not successful 40.

If the registration process or the login was successful, a normal communication 42 is set up between the base station 14 and the transponder 16, the normal communication 42 enabling read/write accesses to the memory of the transponder 16 by the base station 14. Otherwise, the communication between base station and the transponder is terminated 44 or arbitrary data such as random data, for example, are output by the transponder.

The invention makes it possible to limit the extra outlay on circuitry for implementing a new instruction particularly in the case of transponders whose chip area is very restricted, by generating new instructions by combination of known instructions and addresses of protected memory areas. As a result, neither the already existing instruction structure is changed nor is a change necessary. Changes in already existing base stations are likewise necessary only to a limited extent and can be implemented by software, for example.

The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are to be included within the scope of the following claims. 

1. A method comprising, by one or more computer systems, executing a program in response to receiving instructions for accessing a protected memory area. 